Open-collector/drain drivers are used on multiple master/slave devices to control signal lines which are pulled-up externally by a resistor, resulting in a wired-AND bus configuration. This allows for bidirectional communication, arbitration and flow-control between the devices without explicit handshaking. This type of bus configuration is used with such bus protocols as the I2PC (Inter-IC or Inter Integrated Circuit) and DDC (Display Digital Channel) protocols. The I2C-bus protocol is described in “The I2C-Bus Specification, Version 2.1, January 2000”, published by the Philips Semiconductors company (document order number 9398 393 40011). The DDC-bus protocol is defined in the “VESA E-DDC Standard, ENHANCED DISPLAY DATA CHANNEL STANDARD Version 1.1, Mar. 24, 2004”. As the DDC standard is based on the I2C protocol, the latter will be used as the reference herein.
The I2C-bus has two signal lines SCL (Serial Clock) and SDA (Serial Data), which carry serial clock and data information respectively. A number of devices may be connected in parallel to an I2C-bus, but a simple example application of the I2C-bus is the interconnection of two devices through a cable, such as a host device acting as a master and communicating with a remote device that acts as a slave in the protocol sense.
FIG. 1 illustrates a simple I2C-bus system 10 of the prior art. The simple I2C-bus system 10 comprises a Master device 20 and a Slave device 30, both connected to the two Wired-AND signal lines, SCL and SDA which carry serial clock and data information respectively. Each of the signal lines SCL and SDA is accessed in the Master device 20 and the Slave device 30 by PC interface cells 40. The I2C interface cell 40 includes an I2C receiver 50 and an I2C transmitter 60, for interfacing unidirectional logic signals SIN and SOUT to the bus line (SCL or SDA) to which the I2C interface cell 40 is connected. The signal lines SCL and SDA are further connected to pull-up resistors R1 and R2 respectively which are connected to a positive power source VDD.
As shown in the simple I2C-bus system 10 of FIG. 1 the I2C-bus is used to connect only two devices to each other even though the I2C-bus protocol would allow multiple devices to share the bus. The Master device 20 and the Slave device 30 can communicate over the I2C-bus in both directions as described in detail in the above mentioned I2C-Bus Specification.
To permit a longer reach of the I2C-bus, a repeater may be required to regenerate the signals. Implementing a repeater for this type of bus is non-trivial, as the logic state of a Wired-AND signal line (SCL or SDA) does not fully describe the bus state, i.e. the state of the non-local drivers is masked under certain conditions. This is shown in Table 1 which lists the possible conditions that obtain as a function of the state of the remote and local drivers in the master and the slave respectively.
TABLE 1Interpretation of Wired-AND line valuesRemoteLocalSignal-level (W-DriverDriverAND)ConditionHIGHHIGHHIGHLine releasedLOWHIGHLOWRemote driver pullingline lowHIGHLOWLOWLocal driver pullingline lowLOWLOWLOWBoth drivers pullingline low
From the point-of-view of a single end of a Wired-AND signal line, the third and fourth conditions in the table could represent either a case where only the local driver is pulling the line low, or where both are doing so, as the level of the remote driver is not known. Which case is in effect can not be resolved without modifying the value of the local driver, which may undesirably change the value on the line. In this type of bus structure this is a feature, which may be used, for example, to allow a slow slave to hold a clock low until it is ready to receive more data. Where the physical line must be repeated, however, this is a logical problem as in this case the repeater does not know if the data source is pulling the line low and hence can not know whether to pull the repeated line to the data sink low.
FIG. 2 illustrates a repeatered I2C-bus system 61 of the prior art, including an I2C repeater 70 connected between a master device 20 and a slave device 30. The I2C-bus is consequently split into two segments, a first segment 80 with two signal lines SCL1 and SDA1, and a second segment 90 with two signal lines SCL2 and SDA2. The first segment 80 connects the Master device 20 to the I2C repeater 70, and the second segment 90 connects the I2C repeater 70 to the Slave device 30. Each segment includes its own pull-up resistors, that is R1 and R2 in the first segment 80, and R3 and R4 in the second segment 90.
A solution to the logical problem may be found in an analog circuit that uses a third discrete level in addition to HIGH and LOW, and which does not violate the pertinent signaling specification. This solution allows the line to be released to a sub-threshold voltage in order to sense if the remote driver is pulling low. But this solution has the practical problem that a large number of analog design and implementation technology issues must be considered when designing a sense circuit that distinguishes between small threshold values.
Another solution might be to physically propagate the signal lines through the I2C-bus repeater, through appropriate FETs (Field Effect Transistors). This has two significant problems. The first is the requirement to propagate the signal lines through the low-voltage core of the device which leads to a number of analog implementation issues. Secondly, the signal lines can not be boosted, which presents a problem when the purpose of the repeater is to extend the reach of the bus, for example by several meters of cable.
I2C-bus repeaters are commercially available in the form of small packaged specialized analog devices, for example part number PCA9515A from NXP Semiconductors, and part number PCA9306 from Texas Instruments, which have been cited in the Information Disclosure Statement submitted by the applicants. These devices are based on analog circuitry.
Present I2C-bus repeaters are limited to analog circuit techniques, may be subject to noise and other impairments, and require specialized design and manufacturing skills.
Consequently, the development of a digital solution that overcomes these difficulties is very desirable.